<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Gallio.Ambience</name>
    </assembly>
    <members>
        <member name="T:Gallio.Ambience.AmbienceClient">
            <summary>
            The Ambience client accesses shared data provided by a remote <see cref="T:Gallio.Ambience.AmbienceServer"/>.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceClient.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Ambience.AmbienceClient.Connect(Gallio.Ambience.AmbienceClientConfiguration)">
            <summary>
            Connects the client to the remote server.
            </summary>
            <param name="configuration">The client configuration.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="configuration"/> is null.</exception>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="P:Gallio.Ambience.AmbienceClient.Container">
            <summary>
            Gets the client's data container.
            </summary>
            <exception cref="T:System.ObjectDisposedException">Thrown if the client has been disposed.</exception>
        </member>
        <member name="T:Gallio.Ambience.AmbienceSectionHandler">
             <summary>
             Recognizes and processes the &lt;ambience&gt; configuration section.
             </summary>
             <example>
             Example configuration:
             <code><![CDATA[
             <?xml version="1.0" encoding="utf-8" ?>
             <configuration>
               <configSections>
                 <section name="ambience" type="Gallio.Ambience.AmbienceSectionHandler, Gallio.Ambience" />
               </configSections>
            
               <ambience>
                 <defaultClient hostName="localhost" port="65436" userName="Test" password="Password" />
               </ambience>
             </configuration>
             ]]></code>
             </example>
        </member>
        <member name="F:Gallio.Ambience.AmbienceSectionHandler.SectionName">
            <summary>
            The name of the Ambience section: "ambience".
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceSectionHandler.Create(System.Object,System.Object,System.Xml.XmlNode)">
            <inheritdoc />
        </member>
        <member name="M:Gallio.Ambience.AmbienceSectionHandler.GetSection">
            <summary>
            Gets the configuration section contents, or a default instance if none available.
            </summary>
            <returns>The configuration section.</returns>
        </member>
        <member name="T:Gallio.Ambience.AmbienceException">
            <summary>
            Describes a problem accessing Gallio Ambience.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceException.#ctor">
            <summary>
            Creates an exception.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceException.#ctor(System.String)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
        </member>
        <member name="M:Gallio.Ambience.AmbienceException.#ctor(System.String,System.Exception)">
            <summary>
            Creates an exception.
            </summary>
            <param name="message">The message.</param>
            <param name="innerException">The inner exception.</param>
        </member>
        <member name="M:Gallio.Ambience.AmbienceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Creates an exception from serialization info.
            </summary>
            <param name="info">The serialization info.</param>
            <param name="context">The streaming context.</param>
        </member>
        <member name="T:Gallio.Ambience.AmbienceServerConfiguration">
            <summary>
            Provides configuration data for <see cref="T:Gallio.Ambience.AmbienceServer"/>.
            </summary>
        </member>
        <member name="P:Gallio.Ambience.AmbienceServerConfiguration.DatabasePath">
            <summary>
            Gets or sets the database file path.
            </summary>
            <value>The database file path, the default is a file called Default.db
            in the Gallio.Ambient subdirectory of the Common Application Data folder.
            </value>
        </member>
        <member name="P:Gallio.Ambience.AmbienceServerConfiguration.Port">
            <summary>
            Gets or sets the Ambient server port number.
            </summary>
            <value>The port number, defaults to 7822.</value>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the port number is not in the range 1..65535.</exception>
        </member>
        <member name="P:Gallio.Ambience.AmbienceServerConfiguration.Credential">
            <summary>
            Gets or sets the Ambient server username and password.
            </summary>
            <value>The username and password, defaults to an anonymous credential.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Ambience.Ambient">
            <summary>
            The Ambient object store is a shared lightweight repository for intermediate test data.  
            </summary>
            <remarks>
            <para>
            The Ambient object is like a persistent whiteboard used to pass information from one test
            to another or to store it for subsequent analysis.
            </para>
            <para>
            The Ambient object store may be used to model the persistent state of the
            testing environment for end-to-end black-box integration testing.  It is particularly
            useful for decoupling tests that incorporate stateful components such as
            databases (that are not wiped and restored each time) or time-sensitive processes
            such as asynchronous jobs.
            </para>
            </remarks>
            <example>
            <para>
            Suppose we are testing a periodic invoicing process.  The business requirement
            dictates that on the last day of each month, an invoice must be generated
            and delivered electronically to all customers with an outstanding balance
            in their account.
            </para>
            <para>
            To verify this requirement, we might choose to adopt a combination of unit
            testing and integration testing methodologies.
            </para>
            <para>
            First, we will write unit tests for each component involved in the invoicing
            process including the invoice generator, data access code, electronic delivery apparatus,
            and the periodic job scheduler.  During unit testing, we will probably
            replace the periodic job scheduler with a mock or stub implementation that simulates
            the end-of-month trigger mechanism.  This is fast and quite effective.
            </para>
            <para>
            Next, for additional confidence we will want to verify that the system works
            completely as an integrated whole.  Perhaps the job scheduling mechanism is built
            on 3rd party tools that must be correctly configured for the environment.  In
            this situation, we might consider implementing an end-to-end system test
            with nothing mocked out.
            </para>
            <para>
            We can implement an end-to-end test like this:
            <list type="bullet">
            <item>Write a few test scripts that are scheduled to run on a regular basis
            and that generate transactions that will be reflected in the invoices.</item>
            <item>For each transaction, such as creating a new account or purchasing a service,
            the scripts should make a record in the <see cref="T:Gallio.Ambience.Ambient"/> object store.</item>
            <item>Write a few more test scripts that are scheduled to run after the invoicing
            process occurs.  They should verify the contents of the invoices based on previously
            stored records in the <see cref="T:Gallio.Ambience.Ambient"/> object store.</item>
            </list>
            </para>
            <para>
            Of course, in this example it can take up to a month to obtain confirmation that
            the invoicing process functioned as expected.  Consequently, we should not rely
            on this approach exclusively for our testing purposes.  Nevertheless, it may be
            useful as part of an on-going Quality Assurance audit.
            </para>
            </example>
        </member>
        <member name="P:Gallio.Ambience.Ambient.Data">
            <summary>
            Gets the default ambient data container.
            </summary>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="P:Gallio.Ambience.Ambient.DefaultClientConfiguration">
            <summary>
            Gets or sets the default client configuration.
            </summary>
            <value>The default client configuration.  The initial value is populated from the contents
            of the Ambience configuration section in the application's or test's configuration file.
            See also <seealso cref="T:Gallio.Ambience.AmbienceSectionHandler"/>.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Ambience.AmbientDataContainerExtensions">
            <summary>
            Extension methods for LINQ syntax over Ambient data containers.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataContainerExtensions.Cast``1(Gallio.Ambience.IAmbientDataContainer)">
            <summary>
            Obtains a query over a data container.
            </summary>
            <remarks>
            <para>
            Client code will not call this method directly.  However, it turns out that
            the C# compiler will add an implicit call to this method when it attempts to
            select a value from the container using LINQ syntax.
            </para>
            </remarks>
            <typeparam name="T">The result type.</typeparam>
            <param name="container">The container.</param>
            <returns>The query object.</returns>
        </member>
        <member name="T:Gallio.Ambience.AmbientDataQueryExtensions">
            <summary>
            Extension methods for LINQ syntax over Ambient data queries.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.Count``1(Gallio.Ambience.IAmbientDataQuery{``0})">
            <summary>
            Counts the number of objects produced by the query.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <param name="self">The query.</param>
            <returns>The number of objects.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.Select``2(Gallio.Ambience.IAmbientDataQuery{``0},System.Func{``0,``1})">
            <summary>
            Produces a new query to select a projection of a component of another query.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <typeparam name="TRet">The projection result type.</typeparam>
            <param name="self">The query.</param>
            <param name="selector">The selection expression.</param>
            <returns>The projected query.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.Where``1(Gallio.Ambience.IAmbientDataQuery{``0},System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
            <summary>
            Produces a new query to filter another query by a criteria.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <param name="self">The query.</param>
            <param name="expression">The filter expression.</param>
            <returns>The filtered query.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.OrderBy``2(Gallio.Ambience.IAmbientDataQuery{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Produces a new query ordered by a comparison expression in ascending order.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <typeparam name="TKey">The sort key type.</typeparam>
            <param name="self">The query.</param>
            <param name="expression">The sort comparison expression.</param>
            <returns>The ordered query.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.OrderByDescending``2(Gallio.Ambience.IAmbientDataQuery{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Produces a new query ordered by a comparison expression in descending order.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <typeparam name="TKey">The sort key type.</typeparam>
            <param name="self">The query.</param>
            <param name="expression">The sort comparison expression.</param>
            <returns>The ordered query.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.ThenBy``2(Gallio.Ambience.IAmbientDataQuery{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Produces a new query ordered by an additional comparison expression in ascending order.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <typeparam name="TKey">The sort key type.</typeparam>
            <param name="self">The query.</param>
            <param name="expression">The sort comparison expression.</param>
            <returns>The ordered query.</returns>
        </member>
        <member name="M:Gallio.Ambience.AmbientDataQueryExtensions.ThenByDescending``2(Gallio.Ambience.IAmbientDataQuery{``0},System.Linq.Expressions.Expression{System.Func{``0,``1}})">
            <summary>
            Produces a new query ordered by an additional comparison expression in descending order.
            </summary>
            <typeparam name="TSource">The type of object being queried.</typeparam>
            <typeparam name="TKey">The sort key type.</typeparam>
            <param name="self">The query.</param>
            <param name="expression">The sort comparison expression.</param>
            <returns>The ordered query.</returns>
        </member>
        <member name="T:Gallio.Ambience.IAmbientDataContainer">
            <summary>
            Represents a container of Ambient data and providers operations to
            query, store and update its contents.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.IAmbientDataContainer.Query``1">
            <summary>
            Gets all objects of a particular type in the container.
            </summary>
            <typeparam name="T">The object type.</typeparam>
            <returns>The data set.</returns>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Gallio.Ambience.IAmbientDataContainer.Query``1(System.Predicate{``0})">
            <summary>
            Gets all objects of a particular type in the container that match a particular filtering criteria.
            </summary>
            <typeparam name="T">The object type.</typeparam>
            <param name="predicate">The filtering criteria.</param>
            <returns>The data set.</returns>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Gallio.Ambience.IAmbientDataContainer.Delete(System.Object)">
            <summary>
            Deletes the object from the container.
            </summary>
            <param name="obj">The object to delete.</param>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Gallio.Ambience.IAmbientDataContainer.Store(System.Object)">
            <summary>
            Stores or updates an object in the container.
            </summary>
            <param name="obj">The object to store.</param>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Gallio.Ambience.IAmbientDataContainer.DeleteAll">
            <summary>
            Deletes all objects in the container.
            </summary>
            <remarks>
            <para>
            Use with caution!
            </para>
            </remarks>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="T:Gallio.Ambience.IAmbientDataQuery`1">
            <summary>
            Represents a lazily evaluated query over Ambient data for use with
            the LINQ query syntax.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.AmbienceClientConfiguration">
            <summary>
            Provides configuration data for <see cref="T:Gallio.Ambience.AmbienceClient"/>.
            </summary>
        </member>
        <member name="P:Gallio.Ambience.AmbienceClientConfiguration.HostName">
            <summary>
            Gets or sets the Ambient server hostname.
            </summary>
            <value>The hostname, defaults to "localhost".</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
            <exception cref="T:System.ArgumentException">Thrown if <paramref name="value"/> is empty.</exception>
        </member>
        <member name="P:Gallio.Ambience.AmbienceClientConfiguration.Port">
            <summary>
            Gets or sets the Ambient server port number.
            </summary>
            <value>The port number, defaults to 7822.</value>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the port number is not in the range 1..65535.</exception>
        </member>
        <member name="P:Gallio.Ambience.AmbienceClientConfiguration.Credential">
            <summary>
            Gets or sets the Ambient server username and password.
            </summary>
            <value>The username and password, defaults to an anonymous credential.</value>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="value"/> is null.</exception>
        </member>
        <member name="T:Gallio.Ambience.IAmbientDataSet`1">
            <summary>
            A data set containing Ambient objects.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.Impl.AmbienceConfigurationSection">
            <summary>
            Provides information from the Ambience configuration section.
            </summary>
            <seealso cref="T:Gallio.Ambience.AmbienceSectionHandler"/>
        </member>
        <member name="F:Gallio.Ambience.Impl.Constants.DefaultPortNumber">
            <summary>
            Gets the default port number for the Ambient server.
            </summary>
        </member>
        <member name="F:Gallio.Ambience.Impl.Constants.DefaultPortNumberString">
            <summary>
            Gets the default port number for the Ambient server as a string.
            </summary>
        </member>
        <member name="F:Gallio.Ambience.Impl.Constants.DefaultDatabaseFileName">
            <summary>
            Gets the default database file name.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.Impl.Db4oAmbientDataContainer">
            <summary>
            Facade over <see cref="T:Db4objects.Db4o.IObjectContainer"/>.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.Impl.Db4oAmbientDataContainer.#ctor(Db4objects.Db4o.IObjectContainer)">
            <summary>
            Creates a wrapper for a Db4o object container.
            </summary>
            <param name="inner">The inner container.</param>
        </member>
        <member name="P:Gallio.Ambience.Impl.Db4oAmbientDataContainer.Inner">
            <summary>
            Gets the Db4o object container.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.Impl.Db4oAmbientDataQuery`1">
            <summary>
            Facade over <see cref="T:Db4objects.Db4o.Linq.IDb4oLinqQuery`1"/>.
            </summary>
            <typeparam name="T">The query result type.</typeparam>
        </member>
        <member name="M:Gallio.Ambience.Impl.Db4oAmbientDataQuery`1.#ctor(Db4objects.Db4o.Linq.IDb4oLinqQuery{`0})">
            <summary>
            Creates a wrapper for a Db4o query.
            </summary>
            <param name="inner">The inner query.</param>
        </member>
        <member name="P:Gallio.Ambience.Impl.Db4oAmbientDataQuery`1.Inner">
            <summary>
            Gets the Db4o query object.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.Impl.Db4oListWrapper`1">
            <summary>
            This wrapper reinterprets Db4o exceptions as Ambience exceptions so that the client
            can catch them in a meaningful way.
            </summary>
            <remarks>
            <para>
            Db4o is internalized by Ambience so its exception types are not accessible to clients.
            </para>
            </remarks>
            <typeparam name="T">The item type.</typeparam>
        </member>
        <member name="T:Gallio.Ambience.NamespaceDoc">
            <summary>
            The Gallio.Ambience namespace provides a lightweight object database based on db4o for
            storing test data across test runs.
            </summary>
        </member>
        <member name="T:Gallio.Ambience.AmbienceServer">
            <summary>
            The Ambience server provides shared data to remote <see cref="T:Gallio.Ambience.AmbienceClient"/>s.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceServer.#ctor(Gallio.Ambience.AmbienceServerConfiguration)">
            <summary>
            Creates an ambient server with parameters initialized to defaults.
            </summary>
            <param name="configuration">The server configuration.</param>
            <exception cref="T:System.ArgumentNullException">Thrown if <paramref name="configuration"/> is null.</exception>
        </member>
        <member name="M:Gallio.Ambience.AmbienceServer.Dispose">
            <summary>
            Stops and disposes the server.
            </summary>
        </member>
        <member name="M:Gallio.Ambience.AmbienceServer.Start">
            <summary>
            Starts the server.
            </summary>
            <exception cref="T:System.InvalidOperationException">Thrown if the server has already been started.</exception>
            <exception cref="T:System.ObjectDisposedException">Thrown if the server has been disposed.</exception>
            <exception cref="T:Gallio.Ambience.AmbienceException">Thrown if the operation failed.</exception>
        </member>
        <member name="M:Gallio.Ambience.AmbienceServer.Stop">
            <summary>
            Stops the server.
            </summary>
            <remarks>
            <para>
            Does nothing if the server has already been stopped.
            </para>
            </remarks>
            <exception cref="T:System.ObjectDisposedException">Thrown if the server has been disposed.</exception>
        </member>
        <member name="M:Gallio.Ambience.AmbienceServer.Dispose(System.Boolean)">
            <summary>
            Stops and disposes the server.
            </summary>
            <param name="disposing">True if disposing.</param>
        </member>
        <member name="T:Gallio.Ambience.Properties.Resources">
            <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
        </member>
        <member name="P:Gallio.Ambience.Properties.Resources.ResourceManager">
            <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
        </member>
        <member name="P:Gallio.Ambience.Properties.Resources.Culture">
            <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
        </member>
        <member name="P:Gallio.Ambience.Properties.Resources.Db4oAmbientDataContainer_QueryResultException">
            <summary>
              Looks up a localized string similar to An error occurred while accessing the query result set..
            </summary>
        </member>
    </members>
</doc>
